Modern communication systems typically utilize layered network model, with error correction and error detection mechanisms in at least some of the network layers, to transmit multimedia signals from a source to a remote recipient. The widely used OSI (Open System Interconnection) layered model partitions networking tasks into distinct layers. Control is passed from one layer to the next, starting at the application layer at a transmitting station, and proceeding to the bottom layer, over a communication channel to a receiving station, and back up the layer hierarchy. This layered structure facilitates network design, since each layer does not have to be aware of the information introduced by other layers, allowing heterogeneous contents to be delivered via the same communication network. The OSI model generally defines a protocol stack arranged in seven layers: 1) a physical (PHY) layer, which is the first and lowest layer and which defines the means of transmitting raw bits over a physical link connecting network nodes, 2) a data link layer which provides the functional and procedural means to transfer data between network entities and is responsible for Media Access Control (MAC), Flow Control and Error Checking, 3) a network layer, which is responsible for routing packets delivery including routing through intermediate routers, 4) a transport layer which provides end-to-end communication services for applications, 5) a session layer which provides the mechanism for opening, closing and managing a session between end-user application processes, 6) a presentation layer, which is responsible for the delivery and formatting of information to the application layer for further processing or display, and 7) an application layer, which supports application and end-user processes. In practice, various networking systems may implement a subset of these layers, which may be given different names according to respective Standards documents, and may further include sub-layers.
At the receiver, each layer starting with the physical layer attempts to provide perfect information to the upper layer. For that purpose, error-detecting codes, such as CRC or checksums, have been introduced at various places of standard protocol stacks combined with retransmission mechanisms for data packets deemed as corrupted. Forward error correction (FEC) processing, through FEC encoding at the transmitter and FEC decoding at the receiver, is typically used in one or more lower layers of the protocol stack, such as the PHY layer and/or the data link layer (DLL). Advantages of forward error correction are that a back-channel is not required and retransmission of data can be avoided.
FEC codes are able to correct both errors and erasures in a block of n symbols. An (n, k) block erasure code converts k source data into a group of n coded data, such that any k of the n encoded data can be used to reconstruct the original source data. Usually, the first k data in each group are identical to the original k source data (systematic code); the remaining (n−k) data are referred to as parity data. In coding theory an error is defined as a corrupted symbol in an unknown position, while an erasure is a corrupted symbol in a known position. In the case of streamed media packets, loss detection is performed based on the sequence numbers in the real-time transport protocol (RTP) packets.
In FEC codes redundant data are derived from the original data using techniques from coding theory. Traditional error correcting codes, such as parity, low-density parity check (LDPC), Reed-Solomon (RS), BCH, and Hamming codes, have recently attracted a substantial amount of attention. From the mathematical view, we explain the encoding and decoding process as follows. Cyclic redundancy check (CRC) codes may be used in the DLL to detect erroneous frames or packets.
In the standard OSI layered network model each layer operates substantially independently on other layers, which facilitates the system design and interoperability. However, it has been shown that cross-layer optimization of parameters may provide some advantages and result in a more efficient data transmission. In particular, joint source-channel encoding has been suggested in the art to enhance overall coding performance and/or reduce the amount of required processing at the receiver and/or transmitter end. The source coding typically occurs in application layer and includes data compression encoding to represent the source information, for example a video and/or audio signal, using fewer bits than the original representation of the source. This is accomplished by reducing redundancy in the transmitted signal, thereby making compress data critical. The joint source-channel decoding enables to jointly optimize the process of data compression at the source and the process of adding redundancy in the FEC channel coding. One disadvantage of the joint source-channel coding is that it couples several networking layers at both the transmitter and the receiver end, thereby complicating the system design.
Several prior art approaches have been disclosed to utilize redundant information introduced by various protocols of the layered protocol stack to aid in decoding. One approach utilizes the redundancy of the source encoded signal by means of a turbo-like exchange of extrinsic information between soft-decision source decoders and channel decoders. Another source of redundancy relates to header information, which can be exploited to support an iterative cross-layer decoding process. Tobias Breddermann et al, in an article entitled “Iterative Source-Channel Decoding with Cross-Layer Support for Wireless VoIP”, paper 17, SCC 2010, Jan. 18-21, 2010, Siegen, Germany, disclosed a cross-layer approach for iterative source-channel decoding (ISCD) in wireless VoIP networks. The approach incorporates speech bits as well as protocol header bits into the ISCD process. The header bits take the role of pilot bits having perfect reliability. These bits are distributed over the frame as supporting points for the MAP decoder. Direct communication between non-adjacent layers enables the iterative exchange of extrinsic information between the source decoder located on the application layer and the channel decoder located on the physical layer. The ISCD decoder is based on the iterative exchange of extrinsic information between the SISO (Soft-Input/Soft-Output) channel decoder and the SDSD (soft-decision source decoder). This turbo-like process can provide decoding performance close to the Shannon limit assuming a sufficient number of decoding iterations. The interleaver π within the iterative loop plays a key role in such transmission systems. It spreads the extrinsic information of each single data bit over the complete data frame. This rearranged information can be reused in the SISO channel decoder and the SDSD, respectively, in order to refine the reliability information for each bit. The reliability information is commonly expressed in terms of log-likelihood ratios (LLRs). At the receiving end, the mobile device performs signal synthesis using the ISCD concept. The soft demodulated and deinterleaved packet is decoded by the SISO channel decoder that provides reliability information for each header bit and speech bit. After the separation of header and speech, the protocol headers are decoded and checked by their CRCs for residual bit errors. While packets with faulty headers are discarded within the protocol stack, packets with correctly decoded protocol headers are forwarded to the SDSD located on the application layer. Extrinsic information about the speech bits, calculated by the SDSD, can be passed back as additional a priori knowledge to the SISO channel decoder. The SISO channel decoder “smears” the perfect a priori knowledge of the header bits over some adjacent speech bits and generates extrinsic speech LLRs with increased reliability. This successfully works due to the fact that during channel encoding header bits and speech data bits are linked together producing output bits that contain information of protocol header bits as well as speech data bits. Since each header bit supports the soft decoding of speech bits located in its surrounding vicinity, they are equally spaced within the packet by the standard reference method (SRM). In this case, the header bits can be interpreted as pilot bits with perfect reliability that act as strong supporting points for the maximum a posteriori (MAP) channel decoder.
Zhimin Yang et al, in an article entitled “Cross-Layer Iterative Decoding of Irregular LDPC Codes using Cyclic Redundancy Check Codes”, WCNC 2009 Proceedings, disclosed an iterative cross-layer decoder (ICLD) for irregular LDPC codes which uses CRC codes in the DLL. The key idea of the decoder of Yang et al is to use correctly decoded DLL frames as an aid for correcting the remaining erroneous DLL frames of one block of the LDPC code in the physical layer, which corresponds to one FEC frame. To accomplish this, the decoder exchanges relevant information between the PHY and DL layers by using a version of the iterative cross-layer decoding architecture. The method of Yang et al further exploits Unequal-Error Protection (UEP) property of irregular LDPC and both the multiple-error detection and single-error correction capabilities of the CRC code are used. The data link layer maps network packets to DLL frames by adding headers and appending CRC checksums. The resulting DLL frames are delivered to the physical layer. A total of m DLL frames account for one input block to the LDPC encoder, or one FEC frame. The block is encoded using the irregular parity-check matrix, so as to form some elite DLL frames which have a lower frame error probability than the other frames. At the receiver, the received signal is demodulated and the resulting Logarithm Likelihood Ratio (LLR) is injected into the cross-layer iterative decoder. The decoder performs LDPC decoding and CRC error correction/detection jointly and iteratively, using the elite frames for correcting other erroneous frames. It outputs the decoded bits frame by frame, and the resulting DLL frames are mapped to network packets.
One common feature of the prior art iterative cross-layer decoders is that each FEC frame is decoded in isolation of other FEC frames, without exchanging information between FEC frames. The inventors of the present invention have noticed that in many multimedia communication systems, along with the intra-frame redundancy, there exists a source of inter-frame redundancy, wherein some information persist from one FEC frame to another. Furthermore, in communication systems for transmitting multimedia signals, such as wireless DTV systems, the persistent information is not limited to the headers of the application-level packets, but exists in various forms at most, if not each, layers of the used protocol stack.
Accordingly, there is a need for a method of multi-layer decoding that would utilize the inter-frame redundancy as well as the persistent information from a plurality of network layers.